package ventas.dao;

import java.sql.*;
import java.util.ArrayList;
import java.util.Collection;
import ventas.modelo.Usuario
        ;

public class usuarioDAO {

    public Usuario obtenerPorIdVentas(String idUsuario) {
        Usuario vo = new Usuario();
        try {
            Class.forName("com.mysql.jdbc.Driver");
            Connection con = DriverManager.getConnection("jdbc:mysql://127.0.0.1/masters3", "root", "");
            Statement stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery("select idVentas, Producto_idProducto,cantidad,precio_unidad,precio_total from ventas where idVentas ='" + idUsuario + "'");
            if (rs.next()) {
                vo.setIdVentas(rs.getString("idVentas"));
                vo.setProducto_idProducto(rs.getString("Producto_idProducto"));
                vo.setCantidad(rs.getString("cantidad"));
                vo.setPrecio_unidad(rs.getString("precio_unidad"));
                vo.setPrecio_total(rs.getString("precio_total"));
            }
            rs.close();
            stmt.close();
            con.close();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return vo;
    }
    public Collection<Usuario> buscarPorNombre(String nombre) {
String query = "select idVentas,Producto_idProducto,cantidad,precio_unidad,precio_total from ventas where idVentas like '%"+nombre +"%'";
Collection<Usuario> c = new ArrayList<Usuario>();
try {
Connection con = ConexionBD.obtenerConexion();
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(query);
while(rs.next()) {
Usuario vo = new Usuario();
vo.setIdVentas(rs.getString("idVentas"));
vo.setProducto_idProducto(rs.getString("Producto_idProducto"));
vo.setCantidad(rs.getString("cantidad"));
vo.setPrecio_unidad(rs.getString("precio_unidad"));
vo.setPrecio_total(rs.getString("precio_total"));
c.add(vo);
}
rs.close();
stmt.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
return c;
}
    public Usuario insertar(Usuario vo) {
String query = "INSERT INTO ventas (idVentas,Producto_idProducto,cantidad,precio_unidad,precio_total) " + "VALUES (?,?,?,?,?)";
System.err.println(query);
Connection con = null;
PreparedStatement stmt = null;
try {
con = ConexionBD.obtenerConexion();
stmt = con.prepareStatement(query);
stmt.setString(1, vo.getIdVentas());
stmt.setString(2, vo.getProducto_idProducto());
stmt.setString(3, vo.getCantidad());
stmt.setString(4, vo.getPrecio_unidad());
stmt.setString(5, vo.getPrecio_total());
int i = stmt.executeUpdate();
if (i != 1) {
throw new SQLException("No se pudo insertar");
}
stmt.close();
con.close();
} catch (SQLException e) {
System.err.println(e.getMessage());
}
return vo;
}
    public Usuario actualizar(Usuario vo) {
String query = "UPDATE ventas SET cantidad=?, precio_unidad=?, precio_total=? WHERE idVenta=?";
try {
Connection con = ConexionBD.obtenerConexion();
PreparedStatement stmt = con.prepareStatement(query);
stmt.setString(1, vo.getCantidad());
stmt.setString(2, vo.getPrecio_unidad());
stmt.setString(3, vo.getPrecio_total());
int i = stmt.executeUpdate();
if(i != 1){
throw new SQLException("No se pudo actualizar");
}
stmt.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
return vo;
}
    public void eliminar(String idVentas) {
String query = "DELETE FROM ventas WHERE idVentas=?";
try {
Connection con = ConexionBD.obtenerConexion();
PreparedStatement stmt = con.prepareStatement(query);
stmt.setString(1,idVentas);
int i = stmt.executeUpdate();
if(i != 1){
throw new SQLException("No se pudo eliminar");
}
stmt.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
    public Collection<Usuario> listarTodos() {
Collection<Usuario> c = new ArrayList<Usuario>();
try {
Connection con = ConexionBD.obtenerConexion();
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select idVentas,Producto_idProducto,cantidad,precio_unidad,precio_total from ventas");
while (rs.next()) {
Usuario vo = new Usuario();
vo.setIdVentas(rs.getString("idVentas"));
vo.setProducto_idProducto(rs.getString("Produdcto_idProducto"));
vo.setCantidad(rs.getString("cantidad"));
vo.setPrecio_unidad(rs.getString("precio_unidad"));
vo.setPrecio_total(rs.getString("precio_total"));
c.add(vo);
}
rs.close();
stmt.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
return c;
}

}

